    var GLOBAL_CALENDAR_DATE_FORMAT = "yyyy/MM/dd";
	var CALENDAR_CLICK_DATE = 'clickDate';
	var CALENDAR_CLICK_HEADER = 'clickHeader';
	var CALENDAR_CHANGE_MONTH = 'changeMonth';
	var CALENDAR_CLICK_WEEK = 'clickWeek';
	var CALENDAR_STYLE_WIDTH = 'CalendarWidth';
	var CALENDAR_STYLE_HEIGHT = 'CalendarHeight';

	Date.prototype.format = function(format)
	{
		var o = {
		"M+" : this.getMonth()+1, //month
		"d+" : this.getDate(),    //day
		"h+" : this.getHours(),   //hour
		"m+" : this.getMinutes(), //minute
		"s+" : this.getSeconds(), //second
		"q+" : Math.floor((this.getMonth()+3)/3),  //quarter
		"S" : this.getMilliseconds() //millisecond
		}

		if(/(y+)/.test(format)) format=format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));

		for(var k in o)
			if(new RegExp("("+ k +")").test(format))
				format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));

		return format;
	}

    /*
     *名称： getFunctionName
     *功能： 取得函数名。
     *参数： func 		- 函数引用
     *返回： 无
     *说明： 
    */
	function getFunctionName(func)
	{
		if( func==null ) return null;

	    var functionBody = func.toString();
	    var functionName = functionBody.match(/function (\w*)/)[1];
	    if (functionName == null || functionName.length == 0)
	      functionName = functionBody;

	    return functionName;
	}

    /*
     *名称： AttachEvent
     *功能： 绑定对象事件。
     *参数： type 		- 事件类型
     *		 target 	- 目标对象
     * 		 handler 	- 被绑定函数引用
     *		 owner	 	- 参数列表
     *返回： 无
     *说明： 
    */
	function AttachEvent(type, target, handler, owner)
	{
		var eventHandler = handler;

	    eventHander = function(e)
	    {
			handler.call(owner, e);
	    }

	    if(window.document.all)
	    	target.attachEvent("on" + type, eventHander );
	    else
	        target.addEventListener(type, eventHander, false);
	}

    /*
     *名称： Calendar
     *功能： 构建日历控件。
     *参数： 无
     *返回： 无
     *说明： 
    */
	function Calendar(id, parentElement, date) {

		this.id = id;
		this.parentElement = parentElement;

		this.inpDateId = 'CAL_INP_'+this.id;
		this.inpClickHeaderId = 'CAL_CLICK_HEADER_INP_'+this.id;
		this.inpClickDateId = 'CAL_DATE_CLICK_INP_'+this.id;
		this.inpChangeMonthId = 'CAL_CHANGE_MONTH_INP_'+this.id;
		this.inpClickWeekId = 'CAL_CLICK_WEEK_INP_'+this.id;
		this.inpStyleCalendarWidthId = 'CAL_STYLE_WIDTH_INP_'+this.id;
		this.inpStyleCalendarHeightId = 'CAL_STYLE_HEIGHT_INP_'+this.id;

		if( arguments.length<3 ) {
			this.date = new Date();
		}
		else
			this.date = date;

		// 设置日期到1号
		this.date.setDate(1);

		this.createCalendar = createCalendar;
		this.setCalDate = setCalDate;
		this.nextCalendar = nextCalendar;
		this.getDateCell = getDateCell;
		this.privateOnClickDate = privateOnClickDate;
		this.privateOnClickHeader = privateOnClickHeader;
		this.privateOnClickWeek = privateOnClickWeek;

		this.createHidden = createHidden;
		this.setObjectEvent = setObjectEvent;
		this.getObjectEvent = getObjectEvent;
		this.setObjectStyle = setObjectStyle;
		
		this.getMonthCell = getMonthCell;
		this.getPreviousCell = getPreviousCell;
		this.getNextCell = getNextCell;
		this.getWeekCell = getWeekCell;

		this.changeMonth = null;
		this.clickDate = null;
		this.clickHeader = null;
		this.clickWeek = null;
		this.styleCalendarWidth = null;
		this.styleCalendarHeight = null;

		// 日期列的列表
		this.dateTable = null;
		// 月份单元格
		this.monthCell = null;
		// 上一月单元格
		this.previousCell = null;
		// 下一月单元格
		this.nextCell = null;
		// 星期单元格
		this.weekCell = null;

		// 创建日期控件
		this.createCalendar();
	}
	
    /*
     *名称： getMonthCell
     *功能： 取得当月单元格对象。
     *参数： 无
     *返回： 取得返回单元格对象, 否则返回null
     *说明： public
    */
	function getMonthCell() {
		return this.monthCell;
	}

    /*
     *名称： getPreviousCell
     *功能： 取得上月单元格对象。
     *参数： 无
     *返回： 取得返回单元格对象, 否则返回null
     *说明： public
    */
	function getPreviousCell() {
		return this.previousCell;
	}

    /*
     *名称： getNextCell
     *功能： 取得下月单元格对象。
     *参数： 无
     *返回： 取得返回单元格对象, 否则返回null
     *说明： public
    */
	function getNextCell() {
		return this.nextCell;
		
	}

    /*
     *名称： getWeekCell
     *功能： 取得星期单元格对象。
     *参数： week - 日:0, 一:1...六:6
     *返回： 取得返回单元格对象, 否则返回null
     *说明： public
    */
	function getWeekCell(week) {
		return (this.weekCell==null || week>=this.weekCell.length )?null:this.weekCell[week];
	}

    /*
     *名称： createHidden
     *功能： 创建隐藏控件。
     *参数： id  - 隐藏控件的id
     *		 value - 隐藏控件的值
     *返回： 隐藏控件对象
     *说明： public, 为保存控件状态
    */
	function createHidden(id, value) {
		var hidObj = document.createElement("INPUT");

		hidObj.setAttribute("type", "hidden");
		hidObj.setAttribute("id", id);
		hidObj.setAttribute("name", id);
		hidObj.setAttribute("value", (value==null)?'':value );

		return hidObj;
	}

    /*
     *名称： getDateCell
     *功能： 按日期取得日期单元格对象。
     *参数： type - 事件类型
     *		 proc - 函数引用
     *返回： 取得返回单元格对象, 否则返回null
     *说明： public
    */
	function getDateCell(dateString) {

		if( this.dateTable!=null ) {
			var d = new Date(Date.parse(dateString));

			return this.dateTable[ d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate() ];
		}

		return null;
	}

    /*
     *名称： setObjectStyle
     *功能： 设置日历控件样式。
     *参数： type - 样式类型
     *		 value - 样式值
     *返回： 无
     *说明： public
    */
	function setObjectStyle(type, value) {
		if( type=='CalendarWidth' ) {
			this.styleCalendarWidth = value;
			document.getElementById(this.id).style.width = value;
			if( document.getElementById(this.inpStyleCalendarWidthId) ) {
				document.getElementById(this.inpStyleCalendarWidthId).value = value;
			}
		}
		else if( type=='CalendarHeight' ) {
			this.styleCalendarHeight = value;
			document.getElementById(this.id).style.height = value;
			if( document.getElementById(this.inpStyleCalendarHeightId) ) {
				document.getElementById(this.inpStyleCalendarHeightId).value = value;
			}
		}
	}

    /*
     *名称： getObjectEvent
     *功能： 返回日历控件事件引用。
     *参数： type - 事件类型
     *返回： 事件引用
     *说明： public
    */
	function getObjectEvent(type, proc) {
		if( type==CALENDAR_CLICK_DATE ) {
			return this.clickDate;
		}
		else if( type==CALENDAR_CHANGE_MONTH ) {
			return this.changeMonth;
		}
		else if( type==CALENDAR_CLICK_HEADER ) {
			return this.clickHeader;
		}
		else if( type==CALENDAR_CLICK_WEEK ) {
			return this.clickWeek;
		}
	}

    /*
     *名称： setObjectEvent
     *功能： 绑定日历控件事件。
     *参数： type - 事件类型
     *		 proc - 函数引用
     *返回： 无
     *说明： public
    */
	function setObjectEvent(type, proc) {
		if( type==CALENDAR_CLICK_DATE ) {
			this.clickDate = proc;
			if( document.getElementById(this.inpClickDateId) ) {
				document.getElementById(this.inpClickDateId).value = getFunctionName(proc);
			}
		}
		else if( type==CALENDAR_CHANGE_MONTH ) {
			this.changeMonth = proc;
			if( document.getElementById(this.inpChangeMonthId) ) {
				document.getElementById(this.inpChangeMonthId).value = getFunctionName(proc);
			}
		}
		else if( type==CALENDAR_CLICK_HEADER ) {
			this.clickHeader = proc;
			if( document.getElementById(this.inpClickHeaderId) ) {
				document.getElementById(this.inpClickHeaderId).value = getFunctionName(proc);
			}
		}
		else if( type==CALENDAR_CLICK_WEEK ) {
			this.clickWeek = proc;
			if( document.getElementById(this.inpClickWeekId) ) {
				document.getElementById(this.inpClickWeekId).value = getFunctionName(proc);
			}
		}
	}

    /*
     *名称： parseCalendar
     *功能： 取得日历控件。
     *参数： id - 日历控件的id
     *返回： 成功返回日历对象, 失败返回null
     *说明： 
    */
	function parseCalendar(id) {
		var cal = null;

		var inpDateId = 'CAL_INP_'+id;
		var inpClickDateId = 'CAL_DATE_CLICK_INP_'+id;
		var inpChangeMonthId = 'CAL_CHANGE_MONTH_INP_'+id;
		var inpClickHeaderId = 'CAL_CLICK_HEADER_INP_'+id;
		var inpClickWeekId = 'CAL_CLICK_WEEK_INP_'+id;
		var inpStyleCalendarWidthId = 'CAL_STYLE_WIDTH_INP_'+id;
		var inpStyleCalendarHeightId = 'CAL_STYLE_HEIGHT_INP_'+id;
		
		if( document.getElementById(id) && document.getElementById(inpDateId) ) {
			// 取得日历控件的上级元素, IE:parentElement, FireFox:parentNode
			var parentElement = (document.getElementById(id).parentElement)?document.getElementById(id).parentElement:document.getElementById(id).parentNode;
			// 取得日历控件当前月份的隐藏控件
			var inpDateElement = document.getElementById(inpDateId);
			// 取得clickDate事件的隐藏控件
			var inpClickDate = document.getElementById(inpClickDateId);
			// 取得changeMonth事件的隐藏控件
			var inpChangeMonth = document.getElementById(inpChangeMonthId);
			// 取得clickHeader事件的隐藏控件
			var inpClickHeader = document.getElementById(inpClickHeaderId);
			// 取得clickWeek事件的隐藏控件
			var inpClickWeek = document.getElementById(inpClickWeekId);
			// 取得  宽
			var inpStyleCalendarWidth = document.getElementById(inpStyleCalendarWidthId);
			// 取得  高
			var inpStyleCalendarHeight = document.getElementById(inpStyleCalendarHeightId);

			// 反序列化出日历控件的当前月份
			var inpDate = new Date(Date.parse(inpDateElement.value));
			// 反序列化出日历控件的changeMonth事件的函数名
			var procNameChangeMonth = inpChangeMonth.value;
			// 反序列化出日历控件的clickDate事件的函数名
			var procNameClickDate = inpClickDate.value;
			// 反序列化出日历控件的clickHeader事件的函数名
			var procNameClickHeader = inpClickHeader.value;
			// 反序列化出日历控件的clickWeek事件的函数名
			var procNameClickWeek = inpClickWeek.value;
			// 反序列号出日历控件的CalendarWidth样式
			var calendarWidth = inpStyleCalendarWidth.value;
			// 反序列号出日历控件的CalendarHeight样式
			var calendarHeight = inpStyleCalendarHeight.value;

			// 构建日历控件
			cal = new Calendar(id, parentElement, inpDate);

			if( document.getElementById(inpChangeMonthId) ) {
				// 绑定changeMonth事件
				if( procNameChangeMonth.length>0 ) {
					cal.setObjectEvent(CALENDAR_CHANGE_MONTH, eval(procNameChangeMonth) );
				}
			}

			if( document.getElementById(inpClickDateId) ) {
				// 绑定clickDate事件
				if( procNameClickDate.length>0 ) {
					cal.setObjectEvent(CALENDAR_CLICK_DATE, eval(procNameClickDate) );
				}
			}

			if( document.getElementById(inpClickHeaderId) ) {
				// 绑定clickDate事件
				if( procNameClickHeader.length>0 ) {
					cal.setObjectEvent(CALENDAR_CLICK_HEADER, eval(procNameClickHeader) );
				}
			}

			if( document.getElementById(inpClickWeekId) ) {
				// 绑定clickWeek事件
				if( procNameClickWeek.length>0 ) {
					cal.setObjectEvent(CALENDAR_CLICK_WEEK, eval(procNameClickWeek) );
				}
			}

			if( document.getElementById(id) ) {
				if( calendarWidth!=null) {
					cal.setObjectStyle(CALENDAR_STYLE_WIDTH, calendarWidth);
				}

				if( calendarHeight!=null) {
					cal.setObjectStyle(CALENDAR_STYLE_HEIGHT, calendarHeight);
				}
			}

			return cal;
		}

		return null;
	}

    /*
     *名称： nextCalendar
     *功能： 显示日立控件。
     *参数： next - true: 向下翻动1个月, false: 向上翻动1个月
     *返回： 无
     *说明： protected
    */
	function nextCalendar(next) {
		var oldDate = new Date(this.date);
		this.date.setMonth( this.date.getMonth()+( (next)?1:-1 ) );
		this.createCalendar();

		if( this.changeMonth!=null ) {
			this.changeMonth(this, oldDate, this.date);
		}
	}

    /*
     *名称： privateOnClickDate
     *功能： 点击日期事件处理。
     *参数： [this]
     *返回： 无
     *说明： private
    */
	function privateOnClickDate() {
		if( this[0].clickDate!=null ) {
			this[0].clickDate( this[0], this[1] );
		}
	}

    /*
     *名称： privateOnClickHeader
     *功能： 点击月份事件处理。
     *参数： [this]
     *返回： 无
     *说明： private
    */
	function privateOnClickHeader() {
		if( this[0].clickHeader!=null ) {
			this[0].clickHeader( this[0], this[1] );
		}
	}

    /*
     *名称： privateOnClickWeek
     *功能： 点击星期事件处理。
     *参数： [this]
     *返回： 无
     *说明： private
    */
	function privateOnClickWeek() {
		if( this[0].clickWeek!=null ) {
			this[0].clickWeek( this[0], this[1] );
		}
	}

    /*
     *名称： setCalDate
     *功能： 设置日历控件时间。
     *参数： date
     *返回： 无
     *说明： public
    */
	function setCalDate(date) {
		this.date = date;

		var e;
		try {
			this.createCalendar();
		}
		catch(e) {
			alert(e.message);
		}
	}

    /*
     *名称： createCalendar
     *功能： 显示日立控件。
     *参数： 无
     *返回： 无
     *说明： protected
    */
	function createCalendar() {
		if( document.getElementById(this.id) ) {
			// 删除日立控件
			this.parentElement.removeChild( document.getElementById(this.id) );
		}

		// 1. 构建日立控件
		var calTable = document.createElement("TABLE");

		// 当前年份
		var currentYear = this.date.getFullYear();
		// 上月
		var prevMonth = ((this.date.getMonth()-1+12)%12)+1;
		// 当月
		var currentMonth = this.date.getMonth()+1;
		// 下月
		var nextMonth = ((this.date.getMonth()+1)%12)+1;

		calTable.setAttribute("id", this.id);
		calTable.setAttribute("name", this.id);
		calTable.setAttribute("cellspacing", 0);
		calTable.setAttribute("cellpadding", 2);
		// calTable.setAttribute("title", "Calendar");
		calTable.setAttribute("border", 0);
		calTable.setAttribute("className", "calTable");
		calTable.setAttribute("class", "calTable");

		if( this.styleCalendarWidth!=null ) {
			calTable.style.width = this.styleCalendarWidth;
		}

		if( this.styleCalendarHeight!=null ) {
			calTable.style.height = this.styleCalendarHeight;
		}

		// 2. 构建日立表头控件
		var monTable = document.createElement("TABLE");
		monTable.setAttribute('className', 'calMonTable');
		monTable.setAttribute('class', 'calMonTable');

		// 2.1 插入列并创建上月链接
		var monRow = monTable.insertRow(-1);
		var monCol = monRow.insertCell(-1);
		monCol.setAttribute("className", "calMonPrev");
		monCol.setAttribute("class", "calMonPrev");
		monCol.setAttribute("vAlign", "bottom");
		// 创建上月链接
		var lnkPrevBtn = document.createElement("A");
		lnkPrevBtn.setAttribute("href", "javascript:parseCalendar('"+this.id+"').nextCalendar(false)");
		lnkPrevBtn.appendChild( document.createTextNode(prevMonth+'月') );
		monCol.appendChild( lnkPrevBtn  );
		// 上月单元格
		this.previousCell = monCol;

		// 2.2 插入列并显示当月信息
		monCol = monRow.insertCell(-1);
		monCol.setAttribute("className", "calMonCurrent");
		monCol.setAttribute("class", "calMonCurrent");
		monCol.setAttribute("align", "center");
		AttachEvent( "click", monCol, this.privateOnClickHeader, new Array( this, new Date(this.date) ) );
		monCol.appendChild( document.createTextNode(''+currentYear+'年'+currentMonth+'月') );
		// 当月单元格
		this.monthCell = monCol;

		// 2.3 插入隐藏控件, 记录当月日期的序列化内容
		monCol.appendChild( this.createHidden(this.inpDateId, this.date.toString()) );
		// 记录当前changeMonth事件函数
		monCol.appendChild( this.createHidden(this.inpChangeMonthId, (this.changeMonth==null)?'':getFunctionName(this.changeMonth)) );
		// 记录当前clickDate事件函数
		monCol.appendChild( this.createHidden(this.inpClickDateId, (this.clickDate==null)?'':getFunctionName(this.clickDate)) );
		// 记录当前clickHeader事件函数
		monCol.appendChild( this.createHidden(this.inpClickHeaderId, (this.clickHeader==null)?'':getFunctionName(this.clickHeader)) );
		// 记录当前clickWeek事件函数
		monCol.appendChild( this.createHidden(this.inpClickWeekId, (this.clickWeek==null)?'':getFunctionName(this.clickWeek)) );
		// 记录控件宽度
		monCol.appendChild( this.createHidden(this.inpStyleCalendarWidthId, (this.styleCalendarWidth==null)?'':this.styleCalendarWidth) );
		// 记录控件高度
		monCol.appendChild( this.createHidden(this.inpStyleCalendarHeightId, (this.styleCalendarHeight==null)?'':this.styleCalendarHeight) );

		// 2.4 插入列并创建下月链接
		monCol = monRow.insertCell(-1);
		monCol.setAttribute("className", "calMonNext");
		monCol.setAttribute("class", "calMonNext");
		monCol.setAttribute("vAlign", "bottom");
		// 创建下月链接
		var lnkNextBtn = document.createElement("A");
		lnkNextBtn.setAttribute("href", "javascript:parseCalendar('"+this.id+"').nextCalendar(true)");
		lnkNextBtn.appendChild( document.createTextNode(nextMonth+'月') );
		monCol.appendChild( lnkNextBtn  );
		// 下月单元格
		this.nextCell = monCol;

		// 1.1 在日历控件中插入行, 加入(2)构建的日立表头
		var calHeaderRow = calTable.insertRow(-1);
		var calHeaderCol = calHeaderRow.insertCell(-1);
		calHeaderCol.setAttribute("colSpan", "7");
		calHeaderCol.setAttribute("className", "calHeader");
		calHeaderCol.setAttribute("class", "calHeader");
		calHeaderCol.appendChild( monTable );

		// 3. 插入星期表头
		this.weekCell = new Array();
		var calWeekRow = calTable.insertRow(-1);
		var calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('日') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 0 ) );
		this.weekCell[0] = calWeekCol;

		calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('一') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 1 ) );
		this.weekCell[1] = calWeekCol;

		calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('二') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 2 ) );
		this.weekCell[2] = calWeekCol;

		calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('三') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 3 ) );
		this.weekCell[3] = calWeekCol;

		calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('四') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 4 ) );
		this.weekCell[4] = calWeekCol;

		calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('五') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 5 ) );
		this.weekCell[5] = calWeekCol;

		calWeekCol = calWeekRow.insertCell(-1);
		calWeekCol.setAttribute("className", "calWeek");
		calWeekCol.setAttribute("class", "calWeek");
		calWeekCol.appendChild( document.createTextNode('六') );
		// 绑定clickWeek事件
		AttachEvent( "click", calWeekCol, this.privateOnClickWeek, new Array( this, 6 ) );
		this.weekCell[6] = calWeekCol;

		// 创建临时日期对象
		var tmpDate = new Date();
		tmpDate.setDate(1);
		tmpDate.setFullYear(currentYear);
		tmpDate.setMonth(this.date.getMonth());

		// 设置日期到本月1号
		tmpDate.setDate(1);
		tmpDate.setHours(0);
		tmpDate.setMinutes(0);
		tmpDate.setSeconds(0);

		// i={日=0,一=1,二=2....六=6}, n=1-i
		// n=1 时日期为1号, n<1 时日期向前移动 n+1 天
		// 相当于找到最近的上一个星期天是几号
		tmpDate.setDate( 1-tmpDate.getDay() );

		// 日期列的列表
		this.dateTable = Array();

		// 4. 插入日期行, 6行
		for(var i=0; i<6; i++) {
			var calDayRow = calTable.insertRow(-1);
			// 7列
			for(var j=0; j<7; j++) {
				var calDayCol = calDayRow.insertCell(-1);
				// 当月使用calDay样式, 否则使用calOverDay样式
				calDayCol.setAttribute("className", (tmpDate.getMonth()+1==currentMonth)?"calDay":"calOverDay");
				calDayCol.setAttribute("class", (tmpDate.getMonth()+1==currentMonth)?"calDay":"calOverDay");
				// 插入日期
				calDayCol.appendChild( document.createTextNode(tmpDate.getDate()) );

				// 加入clickDate事件
				AttachEvent( "click", calDayCol, this.privateOnClickDate, new Array( this, new Date(tmpDate) ) );

				var key;
				//key = tmpDate.format(GLOBAL_CALENDAR_DATE_FORMAT);
				key = tmpDate.getFullYear()*10000+(tmpDate.getMonth()+1)*100+tmpDate.getDate();
				this.dateTable[key] = calDayCol;

				// 日期向后移动1天
				// tmpDate.setDate( tmpDate.getDate()+1 );
				tmpDate.setTime( tmpDate.getTime()+24*60*60*1000 );
			}
		}

		// 插入以上建立的日历控件
		this.parentElement.appendChild( calTable );
	}
	/*
	function OnClickDate(sender, date) {
		//sender, date
		//alert(date.format(GLOBAL_CALENDAR_DATE_FORMAT));
		
		var url  = "../Commons/MemorandumForm.aspx";
	        var prm  = "?MEMO_DATE=" + date.format(GLOBAL_CALENDAR_DATE_FORMAT);
	        url += prm;
	        alert(url);
		window.open(url,'MemorandumForm','scrollbars,resizable')
		//sender.getDateCell(date.format(GLOBAL_CALENDAR_DATE_FORMAT)).style.background='#ffff00';
		
	}
*/
